package com.ysq.service;

import com.ysq.entity.AddressBook;

import java.util.List;

/**
 * ClassName: AddressBookService
 * Package: com.ysq.service
 * Description:
 *
 * @Author YSQ
 * @Create 2023/1/6 - 9:22
 */
public interface AddressBookService {
    /**
     * 保存地址业务
     *
     * @param addressBook 要保存的地址信息
     * @return 保存成功返回true, 失败返回false
     */
    boolean save(AddressBook addressBook);

    /**
     * 当前用户地址查询业务
     *
     * @return 返回查询结果, 封装为集合
     */
    List<AddressBook> selectList();

    /**
     * 设置默认地址
     *
     * @param addressBook 封装了要设置为默认地址的地址ID
     * @return 返回设置完默认地址后的地址信息
     */
    AddressBook setDefault(AddressBook addressBook);

    /**
     * 数据回显业务, 根据ID查询对应地址信息
     *
     * @param id 要查的地址的ID
     * @return 将查询的信息封装为AddressBook类返回
     */
    AddressBook selectAddress(Long id);

    /**
     * 更新地址信息业务
     *
     * @param addressBook 要更新的信息, 整体封装为AddressBook对象, 里面包含了要更新的地址ID
     * @return 更新成功返回true, 更新失败返回false
     */
    boolean update(AddressBook addressBook);

    /**
     * 删除地址信息业务
     *
     * @param id 要删除的地址的ID
     * @return 删除成功返回true, 删除失败返回false
     */
    boolean delete(Long id);

    /**
     * 查询当前用户默认地址业务
     *
     * @return 将查询结果封装为AddressBook对象返回
     */
    AddressBook getDefault();
}
